package com.zliblike_platform.service;

import com.zliblike_platform.vo.RankingVO;
import java.util.List;

/**
 * 排行榜服务接口
 */
public interface RankingService {
    
    /**
     * 获取总榜排名
     * @param limit 限制返回数量
     * @return 排名列表
     */
    List<RankingVO> getTotalRanking(Integer limit);
    
    /**
     * 获取上传榜排名
     * @param limit 限制返回数量
     * @return 排名列表
     */
    List<RankingVO> getUploadRanking(Integer limit);
    
    /**
     * 获取编辑榜排名
     * @param limit 限制返回数量
     * @return 排名列表
     */
    List<RankingVO> getEditRanking(Integer limit);
    
    /**
     * 更新用户上传积分
     * @param userId 用户ID
     * @param points 积分点数
     */
    void updateUploadScore(Long userId, Integer points);
    
    /**
     * 更新用户编辑积分
     * @param userId 用户ID
     * @param points 积分点数
     */
    void updateEditScore(Long userId, Integer points);
    
    /**
     * 更新用户下载积分
     * @param userId 用户ID
     * @param points 积分点数
     */
    void updateDownloadScore(Long userId, Integer points);
    
    /**
     * 更新用户阅读积分
     * @param userId 用户ID
     * @param points 积分点数
     */
    void updateReadScore(Long userId, Integer points);
    
    /**
     * 更新用户评论积分
     * @param userId 用户ID
     * @param points 积分点数
     */
    void updateCommentScore(Long userId, Integer points);
    
    /**
     * 获取用户总积分
     * @param userId 用户ID
     * @return 总积分
     */
    Integer selectUserTotalScore(Long userId);
    
    /**
     * 更新排行榜奖励
     * 每月更新一次，为前三名用户升级账户等级
     */
    void updateRankingRewards();
} 